Query Cost Analysis
あらかじめ決められたクエリのコスト(複雑度)を計算し、それが 閾値 を超えた場合にリクエストを失敗させる 一定時間ごとに Point が割り振られており、この Point を消費してリクエストを行う
Point が無くなるとリクエストが失敗する
クエリしているフィールドがどのような種類の値を返すのか
interface や union が含まれているか
Connection: 関連するオブジェクトのリストを返すフィールド
first や last といった引数で取得するアイテム数を指定でき、その数によってコストが変わる
Point はレスポンスの extensions から確認できる
code:json
{
...
"extensions": {
"cost": {
"requestedQueryCost": 101, // 予測された消費 Point
"actualQueryCost": 46, // 実際の消費 Point
"throttleStatus": {
"maximumAvailable": 1000, // クライアントに割り当てられる Point の上限
"currentlyAvailable": 954, // 残り Point
"restoreRate": 50 // 1 秒ごとに回復する Point
}
}
}
}